Advancements in digital technologies have permitted the widespread usage of processor-based products and services. Products and services heretofore unavailable have been made possible through the use of such digital technologies. And, many existing products and services have been made more efficient and affordable as a result of such digital technologies.
With the increasing affordability of increasingly-complex, processor-based circuitry, ever-more complex circuitry shall likely be increasingly used in additional systems and services.
The processor-based circuitry includes software which is executed during operation of the processor-based circuitry. With advancements in the hardware components of the processor-based circuitry, increasingly-complex software can be speedily executed to permit increasingly complex tasks to be performed by the processor-based circuitry.
When developing the software to be executed during operation of the processor-based circuitry, subsequent to creation of the software program and the coding thereof, the software must be tested to ensure that, when executed, the software is operable in manners in which it was intended.
Frequently, during testing of the computer software, unanticipated problems or "bugs" are sometimes discovered. Once discovered, appropriate alteration of the software program is necessitated to correct, or "debug" the software. Subsequent testing of the software is typically also necessitated to ensure that the program alterations made during debugging operations do not introduce additional bugs into the software.
During developmental testing, the software program is typically executed line-by-line in interpreted form. Trace programs or commands are sometimes inserted between lines of the interpreted code of the computer software undergoing testing. Such tracing provides the tester with indications of program execution at any point in the program. As the steps of the program formed of the computer software are iteratively performed, a tracing step can be inserted as an additional line to be executed at any location. While time-consuming, such testing provides an indication of the location in the code of the computer software at which point the software becomes operative in manners other than intended.
While developmental testing of the computer software is usually effective in detecting software bugs, sometimes the software bugs remain unnoticed and, hence, uncorrected. Sometimes, the presence of a software bug becomes evident only after the processor-based circuitry is placed into service. Debugging of the computer software is necessitated to determine the location of the bug. As noted above, conventional debugging operations require that the computer software be executed by the processor of the processor-based circuitry in interpreted form. Line-by-line execution of interpreted code is therefore required.
Because such program execution is time-consuming, the processor-based circuitry must typically be taken out of service and placed off-line in order to perform the testing operations upon the computer software. Such requirement to place the circuitry off-line requires the substitution of working circuitry in its place or necessitates the interruption of usage of the circuitry.
A telecommunications switching system is exemplary of processor-based circuitry having computer software executable by a processor during operation of the switching system. Analogous to the development and testing procedures discussed above, once the software for the telecommunications switching system has been developed, testing of the software is performed to ensure that the switching system operates properly once installed in a telecommunications network. Again, however, in some instances, initial testing does not detect the software bugs. Such software bugs may become evident only after installation of the telecommunications switching system in a telephonic network. If a software bug thereafter becomes evident, testing operations are required to be performed to correct the software bug. As existing software testing methods and systems require that the entire software code be executed in interpreted form in a line-by-line manner, testing operations require significant amounts of time to be performed.
Emulators which emulate operation of a telecommunications switching system are sometimes utilized in the design of the switching systems. The emulators are sometimes used, in this regard, also to test the software during the development of the switching system. Such emulators emulate operation of an actual switching system. When testing the operation of the software of a switching system at such an emulator, the software must again, in the existing art, be executed in interpreted form in a line-by-line manner. Such a requirement is again time-consuming.
A manner by which the computer software of a computer system, such as a telecommunications switching system, may be more expeditiously tested would therefore be advantageous.
It is in light of this background information related to the testing of computer software of a computer system, such as a telecommunications switching system, that the significant improvements of the present invention have evolved.